package com.yupi.oj.model.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.BeanUtils;

/**
 * 题目表
 * @TableName question
 */
@TableName(value ="question")
@Data
public class Question implements Serializable {
    /**
     * id
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 题目编号
     */
    @TableField(value = "no")
    private Long no;

    /**
     * 题目标题
     */
    @TableField(value = "title")
    private String title;

    /**
     * 题目描述
     */
    @TableField(value = "description")
    private String description;

    /**
     * 输入
     */
    @TableField(value = "input")
    private String input;

    /**
     * 输出
     */
    @TableField(value = "output")
    private String output;

    /**
     * 样例
     */
    @TableField(value = "example")
    private String example;

    /**
     * 提示
     */
    @TableField(value = "tip")
    private String tip;

    /**
     * 难度等级
     */
    @TableField(value = "difficultLevel")
    private String difficultLevel;

    /**
     * 标签（数组）
     */
    @TableField(value = "tag")
    private String tag;

    /**
     * 提交次数
     */
    @TableField(value = "submitNum")
    private Integer submitNum;

    /**
     * 解决次数
     */
    @TableField(value = "solveNum")
    private Integer solveNum;

    /**
     * 通过率
     */
    @TableField(value = "passRate")
    private Double passRate;

    /**
     * 内存限制（KB）
     */
    @TableField(value = "memoryLimit")
    private Integer memoryLimit;

    /**
     * 时间限制（ms）
     */
    @TableField(value = "timeLimit")
    private Integer timeLimit;

    /**
     * 创建用户
     */
    @TableField(value = "createBy")
    private String createBy;

    /**
     * 创建时间
     */
    @TableField(value = "createTime")
    private Date createTime;

    /**
     * 修改用户
     */
    @TableField(value = "updateBy")
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField(value = "updateTime")
    private Date updateTime;

    /**
     * 是否删除
     */
    @TableField(value = "isDelete")
    @TableLogic
    private Integer isDelete;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}